//管理用户数据相关
import {ref} from 'vue'
import {loginApi} from '@/apis/user'
import {defineStore} from 'pinia'
import {useCartStore} from './cartStore'
import { mergeCartApi} from '@/apis/cart'
export const useUserStore=defineStore("user",()=>{
  const cartStore=useCartStore()

  //1.定义管理用户信息的state
  const userInfo=ref({})
  //2.定义获取接口数据的action函数
  const getUserInfo=async ({account,password})=>{
    const res=await loginApi({account,password})
    /* 传入账号+密码，拿到的是用户的所有信息 */
    userInfo.value=res.result

  //合并购物车的操作
  mergeCartApi(cartStore.cartList.map(item=>{
    return {
      skuId:item.skuId,
      selected:item.selected,
      count:item.count
    }
  }))
  cartStore.updateNewList()
}
  //退出时清除用户信息
  const clearUserInfo=()=>{
    userInfo.value={}
    //清除购物车的action
    cartStore.clearCart()
  }
  //3.以对象格式把state和action return出去
  return {
    userInfo,
    getUserInfo,
    clearUserInfo
  }
},
{
  //启动持久化
  persist: true
})
